<?php

/**
 * Classe de bootstrap do sistema
 *
 * Executa toda pré-inicialização do sistema e
 * inicia o sistema.
 */
class Bootstrap {

    /**
     * Pre-inicializa o sistema
     *
     * @return Object Bootstrap;
     */
    public function init() {
        Loader::autoload_register(array('Loader', 'autoload'));
        return $this;
    }

    /**
     * Inicializa o sistema.
     * É responsável pela seleção dos controllers e das actions
     *
     * @return mixed
     */
    public function run() {
        $controller = (isset($_GET['c'])) ? $_GET['c'] : DEFAULT_CONTROLLER;
        $action = (isset($_GET['a'])) ? $_GET['a'] : DEFAULT_ACTION;

        $controller = htmlspecialchars(strtolower($controller));
        $action = htmlspecialchars(strtolower($action));

        $filename = APP_PATH . 'controllers' . DIRECTORY_SEPARATOR . $controller . EXT;

        if (Loader::loadFile($filename)) {
            $class = "Controller_" . ucfirst($controller);
            $method = "Action_" . ucfirst($action);
            $request = new $class();

            $request->$method();
        } else {
            die('Error 404: Page not Found');
        }
    }
}

?>
